package com.ruoyi.basebill.service;

import com.ruoyi.basebill.domain.*;
import com.ruoyi.basebill.service.exception.DataNullException;

public interface IPushSaleReturnService {
    //生成外部销售出库（红字）
    OmsSaleissuebill pushSaleIssueForOut(OmsSalereturnbill omsSalereturnbill, StringBuffer reason,String orgUnitCode) throws DataNullException;

    //生成上级的销售出库红
    OmsSaleissuebill pushSaleIssueForSup(OmsSalereturnbill omsSalereturnbill, StringBuffer reason,String orgUnitCode,String supOrg)throws DataNullException;

    //生成一级的销售出库红
    OmsSaleissuebill pushSaleIssueForFir(OmsSalereturnbill omsSalereturnbill, StringBuffer reason,String orgUnitCode,String Org)throws DataNullException;

    //生成一级库存调拨单
    OmsStocktransferbill pushStockTransferForFir(OmsSalereturnbill omsSalereturnbill, StringBuffer reason)throws DataNullException;

    //生成仓库无实物退货数量大于的库存调
    OmsStocktransferbill pushStockTransferForQty(OmsSalereturnbill omsSalereturnbill, StringBuffer reason)throws DataNullException;

    //生成下级采购入库单
    OmsPurinwarehsbill pushPurInWarehseForlow(OmsSalereturnbill omsSalereturnbill, StringBuffer reason,String orgSup,String orgUnitCode,Boolean isFirst)throws DataNullException;
    //生成下级采购入库单
    OmsPurinwarehsbill pushPurInWarehseForFirst(OmsSalereturnbill omsSalereturnbill, StringBuffer reason,String orgSup,String orgUnitCode)throws DataNullException;


    //其他入库单
    OmsOtherissuebill pushOtherIssue(OmsSalereturnbill omsSalereturnbill, StringBuffer reason)throws DataNullException;

    //判断是否拒绝处理数量+仓库拒绝处理数量=售后数量
    OmsSalereturnbill rebuildSalereturn(OmsSalereturnbill omsSalereturnbill);

}
